package com.tom.architect.day15.simple4;

import java.util.*;

/**
 * Created by hcDarren on 2017/10/14.
 * 被观察者
 */
public class Observable<M, T extends Observer<M>> {
    private List<T> observables; // 被观察者列表

    public Observable(){
        observables = new ArrayList<>();
    }

    // 注册、反注册
    public void register(T observer){
        observables.add(observer);
    }

    public void unregister(T observer){
        observables.remove(observer);
    }

    // 添加了，就更新：M 观察者
    public void addUpdate(M m){
        for (T observable : observables) {
            observable.update(m);
        }
    }
}
